package com.cykj.mapper;

import com.cykj.pojo.CyDetails;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface DetailsMapper {
    /**
     * 获取所有细项列表
     *
     * @return
     */
    List<CyDetails> getAllDetail();

    /**
     * 一个为先前的展示状态，一个为科室的id
     *
     * @return
     */
    int changeStatus(@Param("proStatus") int proStatus, @Param("detailsId") int detailsId);

    /**
     * 删除某个细项
     *
     * @param detailsId 细项ID
     * @return
     */
    int deleteDetail(int detailsId);

    /**
     * 修改细项内容
     *
     * @param detailsId   细项id
     * @param detailsName 细项名称
     * @param detailsUnit 计量单位
     * @return 修改是否成功
     */
    int alterDetails(
            @Param("detailsId") int detailsId,
            @Param("detailsName") String detailsName,
            @Param("detailsUnit") String detailsUnit,
            @Param("detailsUp") String detailsUp,
            @Param("detailsDown") String detailsDown);

    /**
     * 查找要修改的细项内容与原来地是否一致
     */
    CyDetails searchAlterDetails(
            @Param("detailsId") int detailsId,
            @Param("detailsName") String detailsName,
            @Param("detailsUnit") String detailsUnit,
            @Param("detailsUp") String detailsUp,
            @Param("detailsDown") String detailsDown);
    /**
     * 查询细项
     * @param value 关键词
     * @return 细项列表
     */
    List<CyDetails> searchDetailsInfo(String value);
    /**
     * 获取细项的名称用于批量删除用的
     */
    List<String> getAllDetailsName();
    /**
     * 批量删除卡操作
     */
    int commitDelete(String detailsName);

    /**
     * 查询卡id是否存在
     */
    int fatherDepartIdIsExist(int fatherDepartId);
    /**
     * 添加细项
     */
    int addDetailCommit(@Param("detailName") String detailName,
                        @Param("fatherDepartId") int fatherDepartId,
                        @Param("detailUnit") String detailUnit,
                        @Param("detailUp") String detailUp,
                        @Param("detailDown") String detailDown,
                        @Param("status") int status);
    int isIncludeProject(int id);
    int isIncludeProjectName(String name);
}
